#ifndef ENTITYMATERIAL_H
#define ENTITYMATERIAL_H
#include <QString>

/**
 * @brief PBR材质
 */
class EntityMaterial
{
public:
    // 使能自定义材质
    bool Enable;

    // 粗糙度
    float Roughness;

    // 金属度
    float Metalness;

    // 漫反射颜色
    QString Color;

    // 自发光属性
    float Emissive;

#pragma region renderMode
    // 是否启用裁剪
    bool IsCullFace;

    // 是否启用颜色叠加
    bool IsAddColor;

    // 是否启用深度测试
    bool IsUseDepth;

    // 是否启用线框模式
    bool IsWireframe;
#pragma endregion

    /**
     * @brief 默认构造函数
     */
    EntityMaterial()
    {
        Enable = false;
        Roughness = 0.8f;
        Metalness = 0.1f;
        Color = "#FFFFFFFF";
        Emissive = 0.0f;
        IsCullFace = true;
        IsAddColor = false;
        IsUseDepth = true;
        IsWireframe = false;
    }
};

#endif // ENTITYMATERIAL_H
